//
//  PlayManager.h
//  AVPlay
//
//  Created by darker on 16/3/23.
//  Copyright © 2016年 💋. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h> // 音频 视频类的框架

typedef NS_ENUM(NSInteger, PlayType)
{
    PlayTypeList,  //列表循环
    PlayTypeRandom,  //随机播放
    PlayTypeSingle   //单曲循环
};


@interface PlayManager : NSObject

// 记录当前播放的音乐 在数组里面的下标
@property (nonatomic, assign) NSInteger index;

// 给这个类一个音频url的数组 帮助我们播放音乐 给外界提供上一首 下一首 播放 暂停 时间跳转以及当前正在播放的歌曲的总时间和当前时间

// 用了安全性着想 防止数组被更改 使用NSArray
// 鲁棒性 应用程序 代码的容错性
@property (nonatomic, strong) NSArray *musicArray;


@property(nonatomic,strong)NSMutableArray * modelArray;
// 播放
- (void)play;

// 暂停
- (void)pause;

// 上一首
- (void)preMusic;

// 下一首
- (void)nextMusic;

// 跳转到第几秒
- (void)seekToTime:(NSInteger)newtime;

// 当前时间
- (NSInteger)currentTime;

// 总时间
- (NSInteger)finishTime;


// 单例方法 (是否 是单例 是根据类的性质判断的  如果这个类需要创建多个(如: 网络请求 可能同时请求几个) 就可以不用单例 如果是整个应用程序需要只有一个(如: 音频播放 音频比方要求单例的原因一: 是界面销毁的时候 播放器不能销毁 还要接续播放 二: 是如果多个播放器就是导致同时出现多个声音), 就可以写成单例)
+ (instancetype)sharedManager;

// 为了方便我们点击tableView的时候 可以根据点击的单元格下标 直接跳转到对应的歌曲
- (void)changeMusicWithIndex:(NSInteger)index;

@property (nonatomic, assign) PlayType playtype;

// 歌曲播放完成之后的操作
- (void)playDidFinish;

// 判断暂停还是播放 
- (BOOL)isPlaying;

@end
